perm filename MSSIO.FAI[RST,LCS] blob
sn#210723 filedate 1976-04-09 generic text, type C, neo UTF8
COMMENT β VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE MSSIO ********* JUN 8,74 *********
C00004 00003
C00007 ENDMK
Cβ;
TITLE MSSIO ; ********* JUN 8,74 *********
;; INTERNAL GETFI2,FASTI2,LOOP
INTERNAL GETFI2,FASTI2
INTERNAL LOOK,LOOKD,LOOKF,PAC,UNPAC
CH3β13
DEFINE ERROR (MSG)
< JSA 16,.ERROR
JUMP [ASCIZ/MSG/
]
>
;CALL GETFI2(<FILE>,<0 OR -1>) 0=DAT,LCS -1=WHERE YOU ARE.
GETFI2: 0
MOVE 0,@0(16)
MOVEM 0,FILNAM
MOVE 0,@1(16)
MOVEM 0,PPNW#
JSA 16,INTFIZ
MOVE 0,[SIXBIT/DMD/]
MOVEM 0,DIR+1
JSA 16,LKUP
SKIPA
JRST GETF3
SETZM DIR+1
JSA 16,LKUP
0
GETF3: JRA 16,2(16)
LKUP: 0
SETZM DIR+2
SETZM DIR+3
SKIPE PPNW ;0=DAT,LCS NON-ZERO = WHERE EVER YOU ARE
JRST LUP
MOVE 0,[SIXBIT/DATLCS/]
MOVEM 0,DIR+3
LUP: LOOKUP CH3,DIR
JRA 16,0(16)
JRA 16,1(16)
INTFIZ: 0 ;INITS DSK FOR INPUT
MOVEI REGS
BLT REGS+3
INIT CH3,17
SIXBIT/DSK/
0
ERROR <CAN'T INIT DSK!>
JRST INTF4
;CALL FASTI2(<ARRAY>,<NO. WORDS>)
FASTI2: 0
HRRZ 0,0(16)
SUBI 0,1
MOVEM 0,COM
MOVN 0,@1(16)
HRLM 0,COM
INPUT CH3,COM
STATZ CH3,740000
0
JRA 16,2(16)
COM: OCT 0,0
BLKNUM: 0
.ERROR: 0
OUTSTR [ASCIZ/?
/] ;MAKE SURE HE CAN SEE HIS ERROR
OUTSTR @(16) ;OUTPUT ERROR MESSAGE
CALLI 1,12 ;LET USER CONTI2UE
JRA 16,1(16)
CHβ13
REGS: BLOCK 20
;LOOK(<FILE>) FOR NO EXT., LOOKD() FOR .DAT, LOOKF() FOR .DMD
LOOKF: 0
MOVSI 0,'DMD'
JRST LOOK1
LOOKD: 0
MOVSI 0,'DAT'
JRST LOOK1
LOOK: 0
MOVEI 0,0
LOOK1: MOVEM 0,DIR+1
MOVE 0,@(16)
MOVEM 0,FILNAM
JSA 16, INTFIQ
SETZM DIR+2
SETZM DIR+3
LOOKUP CH,DIR
TDZA 0,0
MOVNI 0,1
JRA 16,1(16)
INTFIQ: 0 ;INITS DSK FOR INPUT
MOVEI REGS
BLT REGS+3
INIT CH,17
SIXBIT/DSK/
0
HALT .-3
; ERROR <CAN'T INIT DSK!>
;;INTF4: MOVE 0,FILNAM#
;; MOVEM 0,FN#
;; MOVE 1,[POINT 7,FN]
INTF4: MOVE 1,[POINT 7,FILNAM#]
INTF3: MOVE 2,[POINT 6,DIR]
SETZM DIR
MOVEI 3,5
INTF1: ILDB 0,1
;; CAIN 0," "
;; JRST INTF2
SUBI 0,40
IDPB 0,2
SOJG 3,INTF1
INTF2: HRLZI REGS
BLT 3
JRA 16,0(16)
DIR: BLOCK 4
PAC: 0 ;CALL PAC(PW,AR)
HRRZ 4,1(16) ; ******* USES AC'S 4,5,6 ********
ADDI 4,2
HRR 5,@4 ;SIZE IS 12 BITS
LSHC 5,-10
SOJ 4,
HRR 5,@4
LSHC 5,-16
SOJ 4,
HRR 5,@4
LSHC 5,-16
MOVEM 6,@0(16)
JRA 16,2(16)
UNPAC: 0 ;CALL UNPAC(PW,AR)
HRRZ 1,1(16)
ADDI 1,2
MOVE 2,@0(16)
LSHC 2,-10
ASH 3,-34
MOVEM 3,@1
SOJ 1,
LSHC 2,-16
ASH 3,-26
MOVEM 3,@1
SOJ 1,
LSHC 2,-16
ASH 3,-26
MOVEM 3,@1
JRA 16,2(16)
; SUBROUTINE LOOP(I,J,K,L,M,N)
; DIMENSION N(1)
; DO 1 NN=I,J,K
;1 N(NN+L)=N(NN+M)
; END
;;LOOP: 0
;; MOVE 4,@1(16)
;; MOVE 3,@0(16)
;; SUB 4,3
;; HRRZ 2,5(16)
;; SOJ 2,
;; ADD 2,3
;; JUMPL 4,MIMI
;; HRR 5,2
;; ADD 5,@3(16)
;; ADD 4,2
;; ADD 4,@3(16)
;; ADD 2,@4(16)
;; HRL 5,2
;; BLT 5,(4)
;; JRA 16,6(16)
;;MIMI: HRR 5,@4(16)
;; HRRM 5,XN
;; HRR 5,@3(16)
;; HRRM 5,XN+1
;;XN: MOVE 6,(2)
;; MOVEM 6,(2)
;; SOJ 2,
;; AOJL 4,XN
;; JRA 16,6(16)
END